package com.solidumgame.locroninja.juego
{
	import com.solidumgame.locroninja.juego.ingredientes.Ingrediente;
	import com.solidumgame.locroninja.juego.ingredientes.IngredientesNoCortadosEnum;
	
	import flash.display.Stage;
	import flash.events.TimerEvent;
	import flash.geom.Vector3D;
	import flash.utils.Timer;
	
	/**
	 * Se encarga de generar los ingredientes  
	 * @author Tdadone
	 * 
	 */
	public class GeneradorIngredientes
	{
		protected static var timerConjunto:Timer;
		protected static var timerIndividual:Timer;
		
		public function GeneradorIngredientes()
		{
			//Inicializamos timer de generacion de conjunto de ingredientes
			if(timerConjunto == null){
				timerIndividual = new Timer(100);	
				timerConjunto = new Timer(1000);	
				timerConjunto.addEventListener(TimerEvent.TIMER, crearIngredientes);
				timerConjunto.start()
			}
		}
		
		protected function crearIngredientes(e:TimerEvent):void{
		
			//Cuantos se crearan en este conjunti
			var cantidad:int = Math.floor(Math.random()*5 + 1);
			
			timerIndividual = new Timer(Math.random()*200 + 100, cantidad);
			timerIndividual.addEventListener(TimerEvent.TIMER,crearIngrediente);
			timerIndividual.start();
			//Cambiamos delay para la proxima generacion
			timerConjunto.delay = Math.random()*1000/Partida.velocidad + 1000; 
		}
		
		protected function crearIngrediente(e:TimerEvent):void{
			
			if(timerIndividual.repeatCount == timerIndividual.currentCount){
				timerIndividual.removeEventListener(TimerEvent.TIMER,crearIngrediente);
			}
			
			var ingrediente:Ingrediente = Ingrediente(IngredientesNoCortadosEnum.getIngrediente());

			var posicion:Vector3D = new Vector3D(300,-150,0);
			var velocidad:Vector3D = new Vector3D(-35,90,0);
			var angulo:Vector3D = new Vector3D(Math.random(),Math.random(),Math.random());
			
			
			//Agregamos ingrediente
			ingrediente.agregarIngrediente(posicion, velocidad, angulo);		
			
		}
	}
}